//Do File for analysis for Deservingness and the Politics of Student Debt Relief//
//Use data file "1-replication data.dta" for this analysis//
//Run in StataSE 17.0//

//CONTROL VARIABLE RECODES//

**party id recodes**

gen pid5=.
replace pid5=1 if pid4==1
replace pid5=2 if pid_lean==2
replace pid5=3 if pid_lean==3
replace pid5=4 if pid_lean==1
replace pid5=5 if pid4==3

tab pid5

recode pid5 1=0 2=0 3=. 4=1 5=1, gen(pid2)

tab pid2 

**gender recode from 3 category to 2**

recode gender 1=1 2=0 3=0, gen(male)
label def malelbl 0 "0 Female/Non-binary" 1 "1 Male" 
label val male malelbl

tab male

**race recodes**

recode race 1=1 2=0 3=0 4=0 5=0 6=0 7=0, gen(white)
label def whitelbl 0 "0 Non-White" 1 "1 White" 
label val white whitelbl

tab white 

recode race 1=0 2=1 3=0 4=0 5=0 6=0 7=0, gen(black)
label def blacklbl 0 "0 Not Black" 1 "1 Black" 
label val black blacklbl

tab black 

**income centering on mean**

recode inc 1=-2 2=-1 3=0 4=1 5=2 6=3 7=4, gen(inc0)
label def inc0lbl  0 "0 50-75k" 
label val inc0 inc0lbl

tab inc0 

**education centering on mean**

recode educ 1=-4 2=-3 3=-2 4=-1 5=0 6=1 7=2, gen(educ0)
label def educlbl  0 "0 bachelors degree" 
label val educ0 educlbl  

tab educ0 

**student borrower recode from 3 cateogry to 2**

recode sl_debt 1=1 2=0 3=0, gen(stud_debt)
label def stud_debtlbl 0 "0 No" 1 "1 Yes" 
label val stud_debt stud_debtlbl


//FRAMING EXPERIMENT TREATMENT VARIABLES//

**Need vs Control Condition**

gen benefit_fx=1 if support_ben ==1
replace benefit_fx=0 if support_control ==1

**Racialized Need vs Control Condition**

gen benefit_r_fx=1 if support_ben_full ==1
replace benefit_r_fx=0 if support_control ==1

**Racialized Need vs Need**

gen benefit_r_fx2=1 if support_ben_full ==1
replace benefit_r_fx2=0 if benefit_fx==1

**Control vs Control Condition**

gen cost_fx=1 if support_cost ==1
replace cost_fx=0 if support_control ==1

**Competitive vs Control Condition**

gen comb_fx=1 if support_competitive ==1
replace comb_fx=0 if support_control ==1

**Dem Endorsement vs Control Condition**

gen dem_fx=1 if support_dem ==1
replace dem_fx=0 if support_control ==1

**Dem Endorsement vs Racialized Need**

gen dem_fx2=1 if support_dem ==1
replace dem_fx2=0 if benefit_r_fx ==1

**Rep Endorsement vs Control Condition**

gen rep_fx=1 if support_rep ==1
replace rep_fx=0 if support_control ==1

**Rep Endorsement vs Control**

gen rep_fx2=1 if support_rep ==1
replace rep_fx2=0 if support_cost ==1


//CONJOINT EXPERIMENT VARIABLES//

**Collapse attribute variables across profiles into single attribute variable**

gen borrower1_occupation = .
replace borrower1_occupation = choice1_Occupation1 if iteration == 1
replace borrower1_occupation = choice2_Occupation1 if iteration == 2
replace borrower1_occupation = choice3_Occupation1 if iteration == 3
replace borrower1_occupation = choice4_Occupation1 if iteration == 4
replace borrower1_occupation = choice5_Occupation1 if iteration == 5
replace borrower1_occupation = choice6_Occupation1 if iteration == 6
tab borrower1_occupation

gen borrower2_occupation = .
replace borrower2_occupation = choice1_Occupation2 if iteration == 7
replace borrower2_occupation = choice2_Occupation2 if iteration == 8
replace borrower2_occupation = choice3_Occupation2 if iteration == 9
replace borrower2_occupation = choice4_Occupation2 if iteration == 10
replace borrower2_occupation = choice5_Occupation2 if iteration == 11
replace borrower2_occupation = choice6_Occupation2 if iteration == 12
tab borrower2_occupation


gen borrower1_race = .
replace borrower1_race = choice1_Race1 if iteration == 1
replace borrower1_race = choice2_Race1 if iteration == 2
replace borrower1_race = choice3_Race1 if iteration == 3
replace borrower1_race = choice4_Race1 if iteration == 4
tab borrower1_race

gen borrower2_race = .
replace borrower2_race = choice1_Race2 if iteration == 7
replace borrower2_race = choice2_Race2 if iteration == 8
replace borrower2_race = choice3_Race2 if iteration == 9
replace borrower2_race = choice4_Race2 if iteration == 10
tab borrower2_race


gen  borrower1_employ = .
replace borrower1_employ = choice1_Employ1 if iteration == 1
replace borrower1_employ = choice2_Employ1 if iteration == 2
replace borrower1_employ = choice3_Employ1 if iteration == 3
replace borrower1_employ = choice4_Employ1 if iteration == 4
replace borrower1_employ = choice5_Employ1 if iteration == 5
replace borrower1_employ = choice6_Employ1 if iteration == 6
tab borrower1_employ

gen  borrower2_employ = .
replace borrower2_employ = choice1_Employ2 if iteration == 7
replace borrower2_employ = choice2_Employ2 if iteration == 8
replace borrower2_employ = choice3_Employ2 if iteration == 9
replace borrower2_employ = choice4_Employ2 if iteration == 10
replace borrower2_employ = choice5_Employ2 if iteration == 11
replace borrower2_employ = choice6_Employ2 if iteration == 12
tab borrower2_employ


gen borrower1_coll = .
replace borrower1_coll = choice1_Type1 if iteration == 1
replace borrower1_coll = choice2_Type1 if iteration == 2
replace borrower1_coll = choice3_Type1 if iteration == 3
replace borrower1_coll = choice4_Type1 if iteration == 4
replace borrower1_coll = choice5_Type1 if iteration == 5
replace borrower1_coll = choice6_Type1 if iteration == 6
tab borrower1_coll

gen borrower2_coll = .
replace borrower2_coll = choice1_Type2 if iteration == 7
replace borrower2_coll = choice2_Type2 if iteration == 8
replace borrower2_coll = choice3_Type2 if iteration == 9
replace borrower2_coll = choice4_Type2 if iteration == 10
replace borrower2_coll = choice5_Type2 if iteration == 11
replace borrower2_coll = choice6_Type2 if iteration == 12
tab borrower2_coll


gen borrower1_level = .
replace borrower1_level = choice1_Grad1 if iteration == 1
replace borrower1_level = choice2_Grad1 if iteration == 2
replace borrower1_level = choice3_Grad1 if iteration == 3
replace borrower1_level = choice4_Grad1 if iteration == 4
replace borrower1_level = choice5_Grad1 if iteration == 5
replace borrower1_level = choice6_Grad1 if iteration == 6
tab borrower1_level

gen borrower2_level = .
replace borrower2_level = choice1_Grad2 if iteration == 7
replace borrower2_level = choice2_Grad2 if iteration == 8
replace borrower2_level = choice3_Grad2 if iteration == 9
replace borrower2_level = choice4_Grad2 if iteration == 10
replace borrower2_level = choice5_Grad2 if iteration == 11
replace borrower2_level = choice6_Grad2 if iteration == 12
tab borrower2_level


gen borrower1_unpaid = .
replace borrower1_unpaid = choice1_Unpaid1 if iteration == 1
replace borrower1_unpaid = choice2_Unpaid1 if iteration == 2
replace borrower1_unpaid = choice3_Unpaid1 if iteration == 3
replace borrower1_unpaid = choice4_Unpaid1 if iteration == 4
replace borrower1_unpaid = choice5_Unpaid1 if iteration == 5
replace borrower1_unpaid = choice6_Unpaid1 if iteration == 6
tab borrower1_unpaid

gen borrower2_unpaid = .
replace borrower2_unpaid = choice1_Unpaid2 if iteration == 7
replace borrower2_unpaid = choice2_Unpaid2 if iteration == 8
replace borrower2_unpaid = choice3_Unpaid2 if iteration == 9
replace borrower2_unpaid = choice4_Unpaid2 if iteration == 10
replace borrower2_unpaid = choice5_Unpaid2 if iteration == 11
replace borrower2_unpaid = choice6_Unpaid2 if iteration == 12
tab borrower1_unpaid


gen borrower1_repay = .
replace borrower1_repay = choice1_Repay1 if iteration == 1
replace borrower1_repay = choice2_Repay1 if iteration == 2
replace borrower1_repay = choice3_Repay1 if iteration == 3
replace borrower1_repay = choice4_Repay1 if iteration == 4
replace borrower1_repay = choice5_Repay1 if iteration == 5
replace borrower1_repay = choice6_Repay1 if iteration == 6
tab borrower1_repay

gen borrower2_repay = .
replace borrower2_repay = choice1_Repay2 if iteration == 7
replace borrower2_repay = choice2_Repay2 if iteration == 8
replace borrower2_repay = choice3_Repay2 if iteration == 9
replace borrower2_repay = choice4_Repay2 if iteration == 10
replace borrower2_repay = choice5_Repay2 if iteration == 11
replace borrower2_repay = choice6_Repay2 if iteration == 12
tab borrower2_repay


gen borrower1_default = .
replace borrower1_default = choice1_Default1 if iteration == 1
replace borrower1_default = choice2_Default1 if iteration == 2
replace borrower1_default = choice3_Default1 if iteration == 3
replace borrower1_default = choice4_Default1 if iteration == 4
replace borrower1_default = choice5_Default1 if iteration == 5
replace borrower1_default = choice6_Default1 if iteration == 6
tab borrower1_default

gen borrower2_default = .
replace borrower2_default = choice1_Default1 if iteration == 7
replace borrower2_default = choice2_Default1 if iteration == 8
replace borrower2_default = choice3_Default1 if iteration == 9
replace borrower2_default = choice4_Default1 if iteration == 10
replace borrower2_default = choice5_Default1 if iteration == 11
replace borrower2_default = choice6_Default1 if iteration == 12
tab borrower2_default


**Outcome variables for Conjoint**

gen borrower_fc = . 
replace borrower_fc = choice1_borrower if iteration == 1
replace borrower_fc = choice2_borrower if iteration == 2
replace borrower_fc = choice3_borrower if iteration == 3
replace borrower_fc = choice4_borrower if iteration == 4
replace borrower_fc = choice5_borrower if iteration == 5
replace borrower_fc = choice6_borrower if iteration == 6

replace borrower_fc = choice1_borrower if iteration == 7
replace borrower_fc = choice2_borrower if iteration == 8
replace borrower_fc = choice3_borrower if iteration == 9
replace borrower_fc = choice4_borrower if iteration == 10
replace borrower_fc = choice5_borrower if iteration == 11
replace borrower_fc = choice6_borrower if iteration == 12
tab borrower_fc


gen borrower1_rank = .
replace borrower1_rank = choice1_borr1_deserv if iteration == 1
replace borrower1_rank = choice2_borr1_deserv if iteration == 2
replace borrower1_rank = choice3_borr1_deserv if iteration == 3
replace borrower1_rank = choice4_borr1_deserv if iteration == 4
replace borrower1_rank = choice5_borr1_deserv if iteration == 5
replace borrower1_rank = choice6_borr1_deserv if iteration == 6

replace borrower1_rank = choice1_borr1_deserv if iteration == 7
replace borrower1_rank = choice2_borr1_deserv if iteration == 8
replace borrower1_rank = choice3_borr1_deserv if iteration == 9
replace borrower1_rank = choice4_borr1_deserv if iteration == 10
replace borrower1_rank = choice5_borr1_deserv if iteration == 11
replace borrower1_rank = choice6_borr1_deserv if iteration == 12
tab borrower1_rank


gen borrower2_rank = .
replace borrower2_rank = choice1_borr2_deserv if iteration == 1
replace borrower2_rank = choice2_borr2_deserv if iteration == 2
replace borrower2_rank = choice3_borr2_deserv if iteration == 3
replace borrower2_rank = choice4_borr2_deserv if iteration == 4
replace borrower2_rank = choice5_borr2_deserv if iteration == 5
replace borrower2_rank = choice6_borr2_deserv if iteration == 6

replace borrower2_rank = choice1_borr2_deserv if iteration == 7
replace borrower2_rank = choice2_borr2_deserv if iteration == 8
replace borrower2_rank = choice3_borr2_deserv if iteration == 9
replace borrower2_rank = choice4_borr2_deserv if iteration == 10
replace borrower2_rank = choice5_borr2_deserv if iteration == 11
replace borrower2_rank = choice6_borr2_deserv if iteration == 12
tab borrower2_rank


gen first_option = .
replace first_option = 1 if iteration == 1
replace first_option = 1 if iteration == 2
replace first_option = 1 if iteration == 3
replace first_option = 1 if iteration == 4
replace first_option = 1 if iteration == 5
replace first_option = 1 if iteration == 6

replace first_option = 0 if iteration == 7
replace first_option = 0 if iteration == 8
replace first_option = 0 if iteration == 9
replace first_option = 0 if iteration == 10
replace first_option = 0 if iteration == 11
replace first_option = 0 if iteration == 12

tab first_option


gen profile_chosen = .
replace profile_chosen = 1 if borrower_fc == 1 & iteration == 1
replace profile_chosen = 1 if borrower_fc == 1 & iteration == 2
replace profile_chosen = 1 if borrower_fc == 1 & iteration == 3
replace profile_chosen = 1 if borrower_fc == 1 & iteration == 4
replace profile_chosen = 1 if borrower_fc == 1 & iteration == 5
replace profile_chosen = 1 if borrower_fc == 1 & iteration == 6

replace profile_chosen = 0 if borrower_fc == 1 & iteration == 7 
replace profile_chosen = 0 if borrower_fc == 1 & iteration == 8
replace profile_chosen = 0 if borrower_fc == 1 & iteration == 9 
replace profile_chosen = 0 if borrower_fc == 1 & iteration == 10 
replace profile_chosen = 0 if borrower_fc == 1 & iteration == 11 
replace profile_chosen = 0 if borrower_fc == 1 & iteration == 12

replace profile_chosen = 0 if borrower_fc == 2 & iteration == 1
replace profile_chosen = 0 if borrower_fc == 2 & iteration == 2
replace profile_chosen = 0 if borrower_fc == 2 & iteration == 3
replace profile_chosen = 0 if borrower_fc == 2 & iteration == 4
replace profile_chosen = 0 if borrower_fc == 2 & iteration == 5
replace profile_chosen = 0 if borrower_fc == 2 & iteration == 6

replace profile_chosen = 1 if borrower_fc == 2 & iteration == 7
replace profile_chosen = 1 if borrower_fc == 2 & iteration == 8
replace profile_chosen = 1 if borrower_fc == 2 & iteration == 9 
replace profile_chosen = 1 if borrower_fc == 2 & iteration == 10 
replace profile_chosen = 1 if borrower_fc == 2 & iteration == 11 
replace profile_chosen = 1 if borrower_fc == 2 & iteration == 12


**Assign values for each characteristic regardless of whether profile 1 or 2**

gen borrowerx_occupation = .

replace borrowerx_occupation = borrower1_occupation if iteration == 1
replace borrowerx_occupation = borrower1_occupation if iteration == 2
replace borrowerx_occupation = borrower1_occupation if iteration == 3
replace borrowerx_occupation = borrower1_occupation if iteration == 4
replace borrowerx_occupation = borrower1_occupation if iteration == 5
replace borrowerx_occupation = borrower1_occupation if iteration == 6

replace borrowerx_occupation = borrower2_occupation if iteration == 7
replace borrowerx_occupation = borrower2_occupation if iteration == 8
replace borrowerx_occupation = borrower2_occupation if iteration == 9
replace borrowerx_occupation = borrower2_occupation if iteration == 10
replace borrowerx_occupation = borrower2_occupation if iteration == 11
replace borrowerx_occupation = borrower2_occupation if iteration == 12

label def borrowerx_occupationlbl 1 "Doctor" 2 "Small Business Owner" 3 "High School Teacher" 4 "Restaurant Server" 
label val borrowerx_occupation borrowerx_occupationlbl

tab borrowerx_occupation borrower1_occupation
tab borrowerx_occupation borrower2_occupation


gen borrowerx_race = .
replace borrowerx_race = borrower1_race if iteration == 1
replace borrowerx_race = borrower1_race if iteration == 2
replace borrowerx_race = borrower1_race if iteration == 3
replace borrowerx_race = borrower1_race if iteration == 4

replace borrowerx_race = borrower2_race if iteration == 7
replace borrowerx_race = borrower2_race if iteration == 8
replace borrowerx_race = borrower2_race if iteration == 9
replace borrowerx_race = borrower2_race if iteration == 10

label def borrowerx_racelbl 1 "White" 2 "Black" 3 "Hispanic" 4 "Asian" 
label val borrowerx_race borrowerx_racelbl

tab borrowerx_race borrower1_race
tab borrowerx_race borrower2_race


gen borrowerx_employ = .
replace borrowerx_employ = borrower1_employ if iteration == 1
replace borrowerx_employ = borrower1_employ if iteration == 2
replace borrowerx_employ = borrower1_employ if iteration == 3
replace borrowerx_employ = borrower1_employ if iteration == 4
replace borrowerx_employ = borrower1_employ if iteration == 5
replace borrowerx_employ = borrower1_employ if iteration == 6

replace borrowerx_employ = borrower2_employ if iteration == 7
replace borrowerx_employ = borrower2_employ if iteration == 8
replace borrowerx_employ = borrower2_employ if iteration == 9
replace borrowerx_employ = borrower2_employ if iteration == 10
replace borrowerx_employ = borrower2_employ if iteration == 11
replace borrowerx_employ = borrower2_employ if iteration == 12

label def borrowerx_employlbl 1 "Employed" 2 "Unemployed and looking for work" 3 "Unemployed and not looking for work"
label val borrowerx_employ borrowerx_employlbl

tab borrowerx_employ borrower1_employ
tab borrowerx_employ borrower2_employ


gen borrowerx_coll = .
replace borrowerx_coll = borrower1_coll if iteration == 1
replace borrowerx_coll = borrower1_coll if iteration == 2
replace borrowerx_coll = borrower1_coll if iteration == 3
replace borrowerx_coll = borrower1_coll if iteration == 4
replace borrowerx_coll = borrower1_coll if iteration == 5
replace borrowerx_coll = borrower1_coll if iteration == 6

replace borrowerx_coll = borrower2_coll if iteration == 7
replace borrowerx_coll = borrower2_coll if iteration == 8
replace borrowerx_coll = borrower2_coll if iteration == 9
replace borrowerx_coll = borrower2_coll if iteration == 10
replace borrowerx_coll = borrower2_coll if iteration == 11
replace borrowerx_coll = borrower2_coll if iteration == 12

label def borrowerx_colllbl 1 "Ivy League" 2 "Private Not-for-profit" 3 "Public 2- or 4-year" 4 "For-profit" 
label val borrowerx_coll borrowerx_colllbl

tab borrowerx_coll borrower1_coll
tab borrowerx_coll borrower2_coll


gen borrowerx_level = .
replace borrowerx_level = borrower1_level if iteration == 1
replace borrowerx_level = borrower1_level if iteration == 2
replace borrowerx_level = borrower1_level if iteration == 3
replace borrowerx_level = borrower1_level if iteration == 4
replace borrowerx_level = borrower1_level if iteration == 5
replace borrowerx_level = borrower1_level if iteration == 6

replace borrowerx_level = borrower2_level if iteration == 7
replace borrowerx_level = borrower2_level if iteration == 8
replace borrowerx_level = borrower2_level if iteration == 9
replace borrowerx_level = borrower2_level if iteration == 10
replace borrowerx_level = borrower2_level if iteration == 11
replace borrowerx_level = borrower2_level if iteration == 12

label def borrowerx_levellbl 1 "Undergraduate" 2 "Graduate/Professional" 3 "Both" 
label val borrowerx_level borrowerx_levellbl

tab borrowerx_level borrower1_level
tab borrowerx_level borrower2_level


gen borrowerx_unpaid = .
replace borrowerx_unpaid = borrower1_unpaid if iteration == 1
replace borrowerx_unpaid = borrower1_unpaid if iteration == 2
replace borrowerx_unpaid = borrower1_unpaid if iteration == 3
replace borrowerx_unpaid = borrower1_unpaid if iteration == 4
replace borrowerx_unpaid = borrower1_unpaid if iteration == 5
replace borrowerx_unpaid = borrower1_unpaid if iteration == 6

replace borrowerx_unpaid = borrower2_unpaid if iteration == 7
replace borrowerx_unpaid = borrower2_unpaid if iteration == 8
replace borrowerx_unpaid = borrower2_unpaid if iteration == 9
replace borrowerx_unpaid = borrower2_unpaid if iteration == 10
replace borrowerx_unpaid = borrower2_unpaid if iteration == 11
replace borrowerx_unpaid = borrower2_unpaid if iteration == 12

label def borrowerx_unpaidlbl 1 "<$10,000" 2 "$10,000-25,000" 3 "$25,000-50,000" 4 "$50,000-75,000" 5 "$75,000+"
label val borrowerx_unpaid borrowerx_unpaidlbl

tab borrowerx_unpaid borrower1_unpaid
tab borrowerx_unpaid borrower2_unpaid


gen borrowerx_repay = .
replace borrowerx_repay = borrower1_repay if iteration == 1
replace borrowerx_repay = borrower1_repay if iteration == 2
replace borrowerx_repay = borrower1_repay if iteration == 3
replace borrowerx_repay = borrower1_repay if iteration == 4
replace borrowerx_repay = borrower1_repay if iteration == 5
replace borrowerx_repay = borrower1_repay if iteration == 6

replace borrowerx_repay = borrower2_repay if iteration == 7
replace borrowerx_repay = borrower2_repay if iteration == 8
replace borrowerx_repay = borrower2_repay if iteration == 9
replace borrowerx_repay = borrower2_repay if iteration == 10
replace borrowerx_repay = borrower2_repay if iteration == 11
replace borrowerx_repay = borrower2_repay if iteration == 12

label def borrowerx_repaylbl 1 "Hasn't begun" 2 "1-5 years" 3 "5-10 years" 4 "More than 10 years" 
label val borrowerx_repay borrowerx_repaylbl

tab borrowerx_repay borrower1_repay
tab borrowerx_repay borrower2_repay


gen borrowerx_default = .
replace borrowerx_default = borrower1_default if iteration == 1
replace borrowerx_default = borrower1_default if iteration == 2
replace borrowerx_default = borrower1_default if iteration == 3
replace borrowerx_default = borrower1_default if iteration == 4
replace borrowerx_default = borrower1_default if iteration == 5
replace borrowerx_default = borrower1_default if iteration == 6

replace borrowerx_default = borrower2_default if iteration == 7
replace borrowerx_default = borrower2_default if iteration == 8
replace borrowerx_default = borrower2_default if iteration == 9
replace borrowerx_default = borrower2_default if iteration == 10
replace borrowerx_default = borrower2_default if iteration == 11
replace borrowerx_default = borrower2_default if iteration == 12

label def borrowerx_defaultlbl 1 "Hasn't missed a payment" 2 "Missed a few payments" 3 "Is currenlty behind on payments" 4 "Is in default on payments" 
label val borrowerx_default borrowerx_defaultlbl

tab borrowerx_default borrower1_default
tab borrowerx_default borrower2_default


gen borrowerx_rank = .
replace borrowerx_rank = borrower1_rank if iteration == 1
replace borrowerx_rank = borrower1_rank if iteration == 2
replace borrowerx_rank = borrower1_rank if iteration == 3
replace borrowerx_rank = borrower1_rank if iteration == 4
replace borrowerx_rank = borrower1_rank if iteration == 5
replace borrowerx_rank = borrower1_rank if iteration == 6

replace borrowerx_rank = borrower2_rank if iteration == 7
replace borrowerx_rank = borrower2_rank if iteration == 8
replace borrowerx_rank = borrower2_rank if iteration == 9
replace borrowerx_rank = borrower2_rank if iteration == 10
replace borrowerx_rank = borrower2_rank if iteration == 11
replace borrowerx_rank = borrower2_rank if iteration == 12


//ANALYSIS//

**Table 3: Support for Government Relief for Student Loan Borrowers**
**The table reports the cummulative percent of categories 4 and 5 for each of the following tabulations by category**

**column a**
tab borrowerx_rank
bysort pid2: tab borrowerx_rank
bysort white: tab borrowerx_rank
tab borrowerx_rank if sl_debt==1
tab borrowerx_rank if sl_debt>1

**column b**
tab cancel_support if support_control==1 & iteration==1
bysort white: tab cancel_support if support_control==1 & iteration==1
bysort pid2: tab cancel_support if support_control==1 & iteration==1
tab cancel_support if support_control==1 & iteration==1 & sl_debt==1
tab cancel_support if support_control==1 & iteration==1 & sl_debt>1


**Figure 1: Relationship between respondent characteristics and support for student debt relief**
**additional formatting done in stata graph editor mode**
**Coeefificients and standard errors reported in Table A.3**

ssc install coefplot

reg relief_student male white inc0 educ0 age pid5 stud_debt if iteration==1
est store relief
coefplot relief, drop(_cons) xline(0, lpattern(dash) lcolor(black))

reg borrowerx_rank  male white inc0 educ0 age pid5 stud_debt if iteration==1
est store rank
coefplot rank, drop(_cons) xline(0, lpattern(dash) lcolor(black))


**Figure 2: Direct Effect of Attributes (AMCE) on Candidate Support**
**additional formatting done in stata graph editor mode**
**Coeefificients and standard errors reported in Table A.4**

**forced choice**
reg profile_chosen i.borrowerx_occupation i.borrowerx_race i.borrowerx_employ i.borrowerx_coll i.borrowerx_level i.borrowerx_repay i.borrowerx_unpaid i.borrowerx_default first_option, vce(cluster id_no)
est store fc_full

**rank**
reg borrowerx_rank i.borrowerx_occupation i.borrowerx_race i.borrowerx_employ i.borrowerx_coll i.borrowerx_level i.borrowerx_repay i.borrowerx_unpaid i.borrowerx_default first_option, vce(cluster id_no)
est store deserve_rank

coefplot fc_full, bylabel(Forced Choice) || deserve_rank, bylabel(Rating) ||, drop(_cons first_option) xline(0, lpattern(dash) lcolor(black)) keep(*:) omitted baselevels scheme(s1mono) label headings(1.borrowerx_occupation = "{bf:Occupation}"  1.borrowerx_race = "{bf:Race}" 1.borrowerx_employ = "{bf:Employment Status}" 1.borrowerx_coll = "{bf:Type of College}" 1.borrowerx_level = "{bf:Degree Type}" 1.borrowerx_unpaid = "{bf:Debt Remaining}" 1.borrowerx_repay = "{bf:Time in Repayment}" 1.borrowerx_default= "{bf:Repayment Status}", labsize(vsmall))


**Figure 3: Direct Effect of Attributes (AMCE) on Borrower Preference by Party ID & Race**
**additional formatting done in stata graph editor mode**
**Coeefificients and standard errors reported in Table A.4**

**Democrats**
reg profile_chosen i.borrowerx_occupation i.borrowerx_race i.borrowerx_employ i.borrowerx_coll i.borrowerx_level i.borrowerx_repay i.borrowerx_unpaid i.borrowerx_default first_option if pid2==0, vce(cluster id_no)
est store deserve_dem

**Republicans**
reg profile_chosen i.borrowerx_occupation i.borrowerx_race i.borrowerx_employ i.borrowerx_coll i.borrowerx_level i.borrowerx_repay i.borrowerx_unpaid i.borrowerx_default first_option if pid2==1, vce(cluster id_no)
est store deserve_rep

coefplot deserve_dem, bylabel(Democrats) || deserve_rep, bylabel(Republicans) ||, drop(_cons first_option) xline(0, lpattern(dash) lcolor(black)) keep(*:) omitted baselevels scheme(s1mono) label headings(1.borrowerx_occupation = "{bf:Occupation}"  1.borrowerx_race = "{bf:Race}" 1.borrowerx_employ = "{bf:Employment Status}" 1.borrowerx_coll = "{bf:Type of College}" 1.borrowerx_level = "{bf:Degree Type}" 1.borrowerx_unpaid = "{bf:Debt Remaining}" 1.borrowerx_repay = "{bf:Time in Repayment}" 1.borrowerx_default= "{bf:Repayment Status}", labsize(vsmall))

**White**
reg profile_chosen i.borrowerx_occupation i.borrowerx_race i.borrowerx_employ i.borrowerx_coll i.borrowerx_level i.borrowerx_repay i.borrowerx_unpaid i.borrowerx_default first_option if white==1, vce(cluster id_no)
est store fc_white

**Black**
reg profile_chosen i.borrowerx_occupation i.borrowerx_race i.borrowerx_employ i.borrowerx_coll i.borrowerx_level i.borrowerx_repay i.borrowerx_unpaid i.borrowerx_default first_option if black==1, vce(cluster id_no)
est store fc_black

coefplot fc_white, bylabel(White) || fc_black, bylabel(Black) ||, drop(_cons first_option) xline(0, lpattern(dash) lcolor(black)) keep(*:) omitted baselevels scheme(s1mono) label headings(1.borrowerx_occupation = "{bf:Occupation}"  1.borrowerx_race = "{bf:Race}" 1.borrowerx_employ = "{bf:Employment Status}" 1.borrowerx_coll = "{bf:Type of College}" 1.borrowerx_level = "{bf:Degree Type}" 1.borrowerx_unpaid = "{bf:Debt Remaining}" 1.borrowerx_repay = "{bf:Time in Repayment}" 1.borrowerx_default= "{bf:Repayment Status}", labsize(vsmall))

**Appendix E Supplemental Analysis of Sutdent Borrowers**
**additional formatting done in stata graph editor mode**

**Borrower**
reg profile_chosen i.borrowerx_occupation i.borrowerx_race i.borrowerx_employ i.borrowerx_coll i.borrowerx_level i.borrowerx_repay i.borrowerx_unpaid i.borrowerx_default first_option if sl_debt==1, vce(cluster id_no)
est store deserve_loan

**Not Borrower**
reg profile_chosen i.borrowerx_occupation i.borrowerx_race i.borrowerx_employ i.borrowerx_coll i.borrowerx_level i.borrowerx_repay i.borrowerx_unpaid i.borrowerx_default first_option if sl_debt>1, vce(cluster id_no)
est store deserve_noloan

coefplot deserve_loan, bylabel(Had Student Debt) || deserve_noloan, bylabel(Not Had Student Debt) ||, drop(_cons first_option) xline(0, lpattern(dash) lcolor(black)) keep(*:) omitted baselevels scheme(s1mono) label headings(1.borrowerx_occupation = "{bf:Occupation}"  1.borrowerx_race = "{bf:Race}" 1.borrowerx_employ = "{bf:Employment Status}" 1.borrowerx_coll = "{bf:Type of College}" 1.borrowerx_level = "{bf:Degree Type}" 1.borrowerx_unpaid = "{bf:Debt Remaining}" 1.borrowerx_repay = "{bf:Time in Repayment}" 1.borrowerx_default= "{bf:Repayment Status}", labsize(vsmall))


**Table 4: Effect of Deservingness Frames on Support for Debt Forgiveness**
**The table reports the means, sample sizes, and 1-tailed statistical significance from each of the following difference in means tests**

**Need v. Control Condition**
ttest cancel_support if iteration==1, by(benefit_fx)
bysort pid2: ttest cancel_support if iteration==1, by(benefit_fx)

**Racialized Need v. Control Condition**
ttest cancel_support if iteration==1, by(benefit_r_fx)
bysort pid2: ttest cancel_support if iteration==1, by(benefit_r_fx)

**Racialized Need v. Need**
ttest cancel_support if iteration==1, by(benefit_r_fx2)
bysort pid2: ttest cancel_support if iteration==1, by(benefit_r_fx2)

**Control v. Control Condition**
ttest cancel_support if iteration==1, by(cost_fx)
bysort pid2: ttest cancel_support if iteration==1, by(cost_fx)

**Competitive v. Control Condition**
ttest cancel_support if iteration==1, by(comb_fx)
bysort pid2: ttest cancel_support if iteration==1, by(comb_fx)

**Dem Endorsement v. Control Condition**
ttest cancel_support if iteration==1, by(dem_fx)
bysort pid2: ttest cancel_support if iteration==1, by(dem_fx)

**Dem Endorsement v. Racialized Need**
ttest cancel_support if iteration==1, by(dem_fx2)
bysort pid2: ttest cancel_support if iteration==1, by(dem_fx2)

**Rep Endorsement v. Control Condition**
ttest cancel_support if iteration==1, by(rep_fx)
bysort pid2: ttest cancel_support if iteration==1, by(rep_fx)

**Rep Endorsement v. Control**
ttest cancel_support if iteration==1, by(rep_fx2)
bysort pid2: ttest cancel_support if iteration==1, by(rep_fx2)
